// Generated from E:\sol2bpel\grammar\SOL_Declarative.g4 by ANTLR 4.2
package qu.sol2bpel.sol.grammar;
import org.antlr.v4.runtime.misc.NotNull;
import org.antlr.v4.runtime.tree.ParseTreeListener;

/**
 * This interface defines a complete listener for a parse tree produced by
 * {@link SOL_DeclarativeParser}.
 */
public interface SOL_DeclarativeListener extends ParseTreeListener {
	/**
	 * Enter a parse tree produced by {@link SOL_DeclarativeParser#matrix_var_list}.
	 * @param ctx the parse tree
	 */
	void enterMatrix_var_list(@NotNull SOL_DeclarativeParser.Matrix_var_listContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_DeclarativeParser#matrix_var_list}.
	 * @param ctx the parse tree
	 */
	void exitMatrix_var_list(@NotNull SOL_DeclarativeParser.Matrix_var_listContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_DeclarativeParser#party_line_decl}.
	 * @param ctx the parse tree
	 */
	void enterParty_line_decl(@NotNull SOL_DeclarativeParser.Party_line_declContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_DeclarativeParser#party_line_decl}.
	 * @param ctx the parse tree
	 */
	void exitParty_line_decl(@NotNull SOL_DeclarativeParser.Party_line_declContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_DeclarativeParser#deny_clause}.
	 * @param ctx the parse tree
	 */
	void enterDeny_clause(@NotNull SOL_DeclarativeParser.Deny_clauseContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_DeclarativeParser#deny_clause}.
	 * @param ctx the parse tree
	 */
	void exitDeny_clause(@NotNull SOL_DeclarativeParser.Deny_clauseContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_DeclarativeParser#var_list}.
	 * @param ctx the parse tree
	 */
	void enterVar_list(@NotNull SOL_DeclarativeParser.Var_listContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_DeclarativeParser#var_list}.
	 * @param ctx the parse tree
	 */
	void exitVar_list(@NotNull SOL_DeclarativeParser.Var_listContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_DeclarativeParser#declarative_section}.
	 * @param ctx the parse tree
	 */
	void enterDeclarative_section(@NotNull SOL_DeclarativeParser.Declarative_sectionContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_DeclarativeParser#declarative_section}.
	 * @param ctx the parse tree
	 */
	void exitDeclarative_section(@NotNull SOL_DeclarativeParser.Declarative_sectionContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_DeclarativeParser#var_line_decl}.
	 * @param ctx the parse tree
	 */
	void enterVar_line_decl(@NotNull SOL_DeclarativeParser.Var_line_declContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_DeclarativeParser#var_line_decl}.
	 * @param ctx the parse tree
	 */
	void exitVar_line_decl(@NotNull SOL_DeclarativeParser.Var_line_declContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_DeclarativeParser#vector_var_list}.
	 * @param ctx the parse tree
	 */
	void enterVector_var_list(@NotNull SOL_DeclarativeParser.Vector_var_listContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_DeclarativeParser#vector_var_list}.
	 * @param ctx the parse tree
	 */
	void exitVector_var_list(@NotNull SOL_DeclarativeParser.Vector_var_listContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_DeclarativeParser#var_decl}.
	 * @param ctx the parse tree
	 */
	void enterVar_decl(@NotNull SOL_DeclarativeParser.Var_declContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_DeclarativeParser#var_decl}.
	 * @param ctx the parse tree
	 */
	void exitVar_decl(@NotNull SOL_DeclarativeParser.Var_declContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_DeclarativeParser#input_output_decl}.
	 * @param ctx the parse tree
	 */
	void enterInput_output_decl(@NotNull SOL_DeclarativeParser.Input_output_declContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_DeclarativeParser#input_output_decl}.
	 * @param ctx the parse tree
	 */
	void exitInput_output_decl(@NotNull SOL_DeclarativeParser.Input_output_declContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_DeclarativeParser#verification_clause}.
	 * @param ctx the parse tree
	 */
	void enterVerification_clause(@NotNull SOL_DeclarativeParser.Verification_clauseContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_DeclarativeParser#verification_clause}.
	 * @param ctx the parse tree
	 */
	void exitVerification_clause(@NotNull SOL_DeclarativeParser.Verification_clauseContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_DeclarativeParser#input_decl}.
	 * @param ctx the parse tree
	 */
	void enterInput_decl(@NotNull SOL_DeclarativeParser.Input_declContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_DeclarativeParser#input_decl}.
	 * @param ctx the parse tree
	 */
	void exitInput_decl(@NotNull SOL_DeclarativeParser.Input_declContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_DeclarativeParser#arg_list}.
	 * @param ctx the parse tree
	 */
	void enterArg_list(@NotNull SOL_DeclarativeParser.Arg_listContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_DeclarativeParser#arg_list}.
	 * @param ctx the parse tree
	 */
	void exitArg_list(@NotNull SOL_DeclarativeParser.Arg_listContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_DeclarativeParser#output_decl}.
	 * @param ctx the parse tree
	 */
	void enterOutput_decl(@NotNull SOL_DeclarativeParser.Output_declContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_DeclarativeParser#output_decl}.
	 * @param ctx the parse tree
	 */
	void exitOutput_decl(@NotNull SOL_DeclarativeParser.Output_declContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_DeclarativeParser#function_decl}.
	 * @param ctx the parse tree
	 */
	void enterFunction_decl(@NotNull SOL_DeclarativeParser.Function_declContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_DeclarativeParser#function_decl}.
	 * @param ctx the parse tree
	 */
	void exitFunction_decl(@NotNull SOL_DeclarativeParser.Function_declContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_DeclarativeParser#protocol_incl}.
	 * @param ctx the parse tree
	 */
	void enterProtocol_incl(@NotNull SOL_DeclarativeParser.Protocol_inclContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_DeclarativeParser#protocol_incl}.
	 * @param ctx the parse tree
	 */
	void exitProtocol_incl(@NotNull SOL_DeclarativeParser.Protocol_inclContext ctx);

	/**
	 * Enter a parse tree produced by {@link SOL_DeclarativeParser#parties_decl}.
	 * @param ctx the parse tree
	 */
	void enterParties_decl(@NotNull SOL_DeclarativeParser.Parties_declContext ctx);
	/**
	 * Exit a parse tree produced by {@link SOL_DeclarativeParser#parties_decl}.
	 * @param ctx the parse tree
	 */
	void exitParties_decl(@NotNull SOL_DeclarativeParser.Parties_declContext ctx);
}